# -*- coding: utf-8 -*-
# @Time    : 20210603
# @Author  : 柿子
# @File    : task.py

#%%
# 推荐vscode执行
import numpy as np

#%%
# 构建 一个三维度数组
score = np.random.randint(0, 151, size=(6, 50, 3))
print(score)
# %%
# 合并六个班的成绩
concat_score = np.vstack(
    [
        score[0],
        score[1],
        score[2],
        score[3],
        score[4],
        score[5],
    ]
)
concat_score
# %%
# 生成性别,并且水平添加 男生1 女生0
student_gender = np.random.randint(0, 2, size=(concat_score.shape[0], 1))
stud_infos = np.hstack([concat_score, student_gender])
stud_infos
# %%
print('|性别|人数 |  科目   |最小值 |最大值 |平均值 |中位数 |标准差 |')
print('|----|----|--------|------|------|------|------|------|')
for gen in [0,1]:
    stud = stud_infos[np.where(stud_infos[:, -1] == gen)][:, :-1]
    for corse in range(stud.shape[1]):
        print('|{: >3}|{: >4}|{: >7}|{: >6.2f}|{: >6.2f}|{: >6.2f}|{: >6.2f}|{: >6.2f}|'.format(
            '男' if gen == 1 else '女', stud.shape[0],
            'python' if corse == 0 else (
                '数学' if corse == 1 else '语文' 
            ),
            np.min(stud[:,corse]),
            np.max(stud[:,corse]),
            np.mean(stud[:,corse]),
            np.median(stud[:,corse]),
            np.std(stud[:,corse]),
        ))
# %%
